<?php


namespace App\Models\coupon;


use Illuminate\Database\Eloquent\Model;

class CmcPromotionCouponUser extends Model
{
    protected $table = 'cmc_promotion_coupon_user';
    // 更新时间
    protected $autoWriteTimestamp = true;

    /**
     * 优惠券列表
     * @param $id
     * @return mixed
     */
    public static function getUserCoupon($id)
    {
        return self::join('cmc_members','cmc_promotion_coupon_user.uid','=','cmc_members.member_id')
            ->join('cmc_promotion_coupon','cmc_promotion_coupon.id','=','cmc_promotion_coupon_user.cid')
            ->join('cmc_promotion_coupon_type','cmc_promotion_coupon.type','=','cmc_promotion_coupon_type.id')
            ->where('uid',$id)
            ->get(['cmc_promotion_coupon_user.uid','cmc_members.nickname','cmc_promotion_coupon_user.add_time'
                ,'cmc_promotion_coupon_user.status','cmc_promotion_coupon_user.cid','cmc_promotion_coupon.title'
                ,'cmc_promotion_coupon.sill','cmc_promotion_coupon.coupon_time','cmc_promotion_coupon_user.add_time'
                ,'cmc_promotion_coupon_user.status','cmc_promotion_coupon_user.cid']);
    }

    /**
     * 根据id修改状态为过期
     *  0 未使用 1 已使用 2已过期
     * @param $id
     */
    public static function updateStatus($id)
    {
        return self::where('cid','in',$id)->update(['status'=>2]);
    }

    /**
     * 查询不同状态的优惠券
     * @param $id
     * @param $status
     * @return mixed
     */
    public static function getStatusUserCoupon($id,$status)
    {
        return self::join('cmc_members','cmc_promotion_coupon_user.uid','=','cmc_members.member_id')
            ->join('cmc_promotion_coupon','cmc_promotion_coupon.id','=','cmc_promotion_coupon_user.cid')
            ->join('cmc_promotion_coupon_type','cmc_promotion_coupon.type','=','cmc_promotion_coupon_type.id')
            ->where('uid',$id)
            ->where('cmc_promotion_coupon.status',$status)
            ->get(['cmc_promotion_coupon_user.uid','cmc_members.nickname','cmc_promotion_coupon_user.add_time'
                ,'cmc_promotion_coupon_user.status','cmc_promotion_coupon_user.cid','cmc_promotion_coupon.title'
                ,'cmc_promotion_coupon.sill','cmc_promotion_coupon.coupon_time','cmc_promotion_coupon_user.add_time'
                ,'cmc_promotion_coupon_user.status','cmc_promotion_coupon_user.cid']);
    }
}